package cn.edu.ecut.synchronize;

/**
 * 1、同步锁什么时候释放 ( 暂时关注两种情况 )
 * 1.1、一个线程任务中的代码执行结束，线程进入终结状态
 * 1.2、如果线程任务执行时发生异常，则异常会交个运行时系统，此时会释放同步锁
 */
public class SynchronizationTest7 {

	public static void main(String[] args) throws Exception {
		
		JdbcHelper h = JdbcHelper.getInstance();
		
		Runnable task = new Runnable() {
			@Override
			public void run() {
				h.release(); // 调用同步方法
			}
		};
		
		Thread t1 = new Thread( task , "first" );
		Thread t2 = new Thread( task , "second" );
		Thread t3 = new Thread( task , "third" );
		
		t1.start();
		t2.start();
		t3.start();
		

	}

}
